package com.geilizu.dom.dao;

import com.geilizu.dom.dto.*;
import com.geilizu.dom.entity.Moveout;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * (Moveout)表数据库访问层
 *
 * @author makejava
 * @since 2022-07-12 23:40:24
 */
public interface MoveoutDao {

    /**
     * 查询所有迁出记录
     *
     * @param page
     * @param size
     * @return
     */
    List<MoveoutDto> moveoutList(@Param("page") Integer page, @Param("size") Integer size);

    /**
     * 查询所有迁出记录数量
     * @return
     */
    Long queryAllCount();

    /**
     * 根据姓名或楼名查询迁出记录
     * @param search
     * @return
     */
    List<MoveoutDto> queryByName(@Param("search") SearchByName search);

    /**
     * 根据姓名或楼名查询迁出记录数量
     * @param search
     * @return
     */
    Long queryByNameCount(@Param("search") SearchByName search);

    /**
     * 学生登记列表
     * @param page
     * @param size
     * @return
     */
    List<StudentDto> moveoList(@Param("page") Integer page,@Param("size") Integer size);

    /**
     * 学生登记列表数量
     * @return
     */
    Long queryStuMoveCount();

    /**
     * 查询学生登记列表
     * @param stuDto
     * @return
     */
    List<StudentDto> queryStu(@Param("stuDto") SearchStuDto stuDto);

    /**
     * 查询学生登记列表数量
     * @return
     */
    Long queryStuCount(@Param("stuDto") SearchStuDto stuDto);

    /**
     * 更新学生状态
     * @param id
     * @return
     */
    Integer updateState(@Param("id") Integer id);

    /**
     * 插入迁出记录
     * @param moveout
     * @return
     */
    Integer insert(@Param("moveout") Moveout moveout);

    /**
     * 通过id删除
     * @param id
     * @return
     */
    Integer deleteById(@Param("id") Integer id);
}

